package com.suiwei.base.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.convert.DurationUnit;
import org.springframework.stereotype.Component;

import java.time.Duration;
import java.time.temporal.ChronoUnit;

/**
 * @author suiwei
 * @date 2022-10-24 14:43
 */
//用了该注解，可能会报错：Spring boot configuration Annotation processor not configured
//需要引入依赖解决报错：spring-boot-configuration-processor
//@ConfigurationProperties支持属性名松散绑定：-，_，大小写都会被忽略掉（@Value不支持松散绑定）
//prefix：前缀的命名规范，仅能使用纯小写，数字，下划线
@ConfigurationProperties(prefix = "user")//初始化的时候，加载配置文件中的配置
@Data
//加入spring容器；如果启动类使用了@EnableConfigurationProperties，则不能再加该注解，否则会重复
//@Component
public class User {
    private String name;
    private int age;
    //jdk8提供的时间计量单位
    @DurationUnit(ChronoUnit.HOURS)
    private Duration time;
}
